FileUtils ক্লাসের ব্যবহার

Java Technologies - অ্যাপাচি কমন্স আইও (Apache Common IO)
172
172

FileUtils ক্লাস Apache Commons IO লাইব্রেরির একটি গুরুত্বপূর্ণ ইউটিলিটি ক্লাস, যা ফাইল ম্যানিপুলেশন সম্পর্কিত সাধারণ কাজগুলো সহজ এবং কার্যকরীভাবে সম্পাদন করতে ব্যবহৃত হয়। এই ক্লাসটি Java I/O API এর উপর অতিরিক্ত সুবিধা প্রদান করে এবং বিভিন্ন ফাইল অপারেশন যেমন কপি, রিড, রাইট, ডিরেক্টরি ম্যানিপুলেশন ইত্যাদি কার্যকরীভাবে করতে সহায়তা করে।

FileUtils ক্লাসটি বেশ কিছু static মেথড সরবরাহ করে, যা ফাইল এবং ডিরেক্টরি সম্পর্কিত কাজগুলো সম্পাদন করতে সহজ করে তোলে।


১. FileUtils ক্লাসের প্রধান ফিচার

  • ফাইল কপি করা: একটি ফাইল থেকে অন্য ফাইলে কপি করা।
  • ফাইল রিড করা: ফাইলের কন্টেন্ট রিড করা (স্ট্রিং বা বাইট হিসেবে)।
  • ফাইল রাইট করা: ফাইলের কন্টেন্ট লিখা (স্ট্রিং বা বাইট হিসেবে)।
  • ডিরেক্টরি তৈরী বা মুছে ফেলা: একটি ডিরেক্টরি তৈরি বা মুছে ফেলা।
  • ফাইলের আকার নির্ধারণ: ফাইলের সাইজ বের করা।
  • ফাইলের এক্সটেনশন পাওয়া: ফাইলের এক্সটেনশন বের করা।
  • ডিরেক্টরি স্ক্যানিং: ডিরেক্টরির ভিতরে থাকা ফাইলগুলো স্ক্যান করা।

২. FileUtils এর কিছু গুরুত্বপূর্ণ মেথড এবং তাদের ব্যবহার

২.১ ফাইল কপি করা (Copying Files)

copyFile() মেথডটি একটি ফাইল থেকে অন্য ফাইলে কপি করার জন্য ব্যবহৃত হয়।

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;

public class FileUtilsExample {
    public static void main(String[] args) throws IOException {
        File sourceFile = new File("source.txt");
        File destinationFile = new File("destination.txt");

        // Copy file from source to destination
        FileUtils.copyFile(sourceFile, destinationFile);

        System.out.println("File copied successfully.");
    }
}

এখানে:

  • copyFile() মেথডটি source.txt ফাইলটি destination.txt ফাইলে কপি করবে।

২.২ ফাইল রিড করা (Reading Files)

readFileToString() মেথডটি একটি ফাইলের কনটেন্ট স্ট্রিং আকারে পড়তে ব্যবহৃত হয়।

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;

public class ReadFileExample {
    public static void main(String[] args) throws IOException {
        File file = new File("source.txt");

        // Read file content into string
        String content = FileUtils.readFileToString(file, "UTF-8");

        System.out.println("File Content: " + content);
    }
}

এখানে:

  • readFileToString() ফাইলের কনটেন্ট স্ট্রিং আকারে পড়েছে এবং UTF-8 এনকোডিং ব্যবহার করা হয়েছে।

২.৩ ফাইল রাইট করা (Writing Files)

write() মেথডটি একটি ফাইলে ডেটা লিখতে ব্যবহৃত হয়।

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;

public class WriteFileExample {
    public static void main(String[] args) throws IOException {
        File file = new File("output.txt");

        // Write string content to file
        FileUtils.writeStringToFile(file, "This is a test content.", "UTF-8");

        System.out.println("Content written to file successfully.");
    }
}

এখানে:

  • writeStringToFile() মেথডটি output.txt ফাইলে একটি স্ট্রিং লিখেছে।

২.৪ ফাইলের আকার পাওয়া (Getting File Size)

sizeOf() মেথডটি একটি ফাইলের আকার নির্ধারণ করতে ব্যবহৃত হয়।

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;

public class FileSizeExample {
    public static void main(String[] args) throws IOException {
        File file = new File("source.txt");

        // Get file size
        long fileSize = FileUtils.sizeOf(file);

        System.out.println("File size: " + fileSize + " bytes");
    }
}

এখানে:

  • sizeOf() মেথডটি source.txt ফাইলের আকার রিটার্ন করবে (বাইটে)।

২.৫ ডিরেক্টরি তৈরি করা (Creating Directories)

mkdirs() মেথডটি একটি ডিরেক্টরি এবং সাব-ডিরেক্টরি তৈরি করতে ব্যবহৃত হয়।

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;

public class DirectoryExample {
    public static void main(String[] args) throws IOException {
        File directory = new File("new_directory");

        // Create directory
        FileUtils.forceMkdir(directory);

        System.out.println("Directory created successfully.");
    }
}

এখানে:

  • forceMkdir() মেথডটি একটি নতুন ডিরেক্টরি তৈরি করবে।

২.৬ ডিরেক্টরি স্ক্যান করা (Scanning Directories)

listFiles() মেথডটি একটি ডিরেক্টরির মধ্যে সব ফাইল এবং সাব-ডিরেক্টরি গুলির লিস্ট রিটার্ন করে।

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;

public class DirectoryScanExample {
    public static void main(String[] args) throws IOException {
        File directory = new File("/path/to/directory");

        // List all files in directory
        File[] files = FileUtils.listFiles(directory, null, true).toArray(new File[0]);

        for (File file : files) {
            System.out.println(file.getAbsolutePath());
        }
    }
}

এখানে:

  • listFiles() মেথডটি ডিরেক্টরি এবং তার সাব-ডিরেক্টরি গুলির ফাইলগুলি রিটার্ন করবে।

২.৭ ডিরেক্টরি মুছে ফেলা (Deleting Directories)

deleteDirectory() মেথডটি একটি ডিরেক্টরি এবং তার সমস্ত কনটেন্ট মুছে ফেলার জন্য ব্যবহৃত হয়।

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;

public class DeleteDirectoryExample {
    public static void main(String[] args) throws IOException {
        File directory = new File("directoryToDelete");

        // Delete the directory and its contents
        FileUtils.deleteDirectory(directory);

        System.out.println("Directory deleted successfully.");
    }
}

এখানে:

  • deleteDirectory() মেথডটি একটি ডিরেক্টরি এবং তার সমস্ত কনটেন্ট মুছে ফেলবে।

৩. FileUtils এর অন্যান্য গুরুত্বপূর্ণ মেথড

  • moveFile(): একটি ফাইল এক স্থান থেকে অন্য স্থানে সরাতে ব্যবহৃত হয়।
  • copyDirectory(): একটি ডিরেক্টরি এবং তার সমস্ত কনটেন্ট কপি করতে ব্যবহৃত হয়।
  • deleteQuietly(): এটি একটি ফাইল বা ডিরেক্টরি মুছে ফেলে, কিন্তু কোন এক্সসেপশন থ্রো করে না।
  • readFileToByteArray(): ফাইল থেকে বাইট অ্যারে রিড করতে ব্যবহৃত হয়।
  • writeByteArrayToFile(): বাইট অ্যারে থেকে ফাইল তৈরি করতে ব্যবহৃত হয়।

৪. FileUtils ক্লাসের সুবিধা

  • সহজ এবং দ্রুত ফাইল অপারেশন: FileUtils ক্লাসটি সাধারণ ফাইল ম্যানিপুলেশন কাজ যেমন কপি, রিড, রাইট, এবং ডিরেক্টরি ম্যানেজমেন্ট সহজ করে তোলে।
  • ইউটিলিটি ফাংশন: ফাইল এবং ডিরেক্টরি পরিচালনার জন্য কার্যকরী ইউটিলিটি ফাংশন সরবরাহ করে।
  • কমপ্যাক্ট এবং পরিষ্কার কোড: ফাইল অপারেশনগুলি করতে FileUtils ব্যবহারের মাধ্যমে কোডের দৈর্ঘ্য কমে যায় এবং কোড আরও পরিষ্কার হয়।

৫. Apache Commons IO লাইব্রেরি ইনস্টলেশন

আপনি যদি Apache Commons IO ব্যবহার করতে চান, তবে আপনাকে এটি আপনার প্রোজেক্টে যোগ করতে হবে। যদি আপনি Maven ব্যবহার করেন, তবে আপনার pom.xml ফাইলে নিম্নলিখিত ডিপেনডেন্সি যোগ করতে হবে:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.11.0</version>
</dependency>

এটি Apache Commons IO লাইব্রেরি আপনার প্রোজেক্টে যোগ করবে, যার মাধ্যমে আপনি FileUtils এবং অন্যান্য ফিচার ব্যবহার করতে পারবেন।


সারাংশ

FileUtils ক্লাস Apache Commons IO লাইব্রেরির একটি অত্যন্ত গুরুত্বপূর্ণ ইউটিলিটি ক্লাস যা ফাইল এবং ডিরেক্টরি ম্যানিপুলেশন কাজগুলোকে সহজ করে তোলে। এটি ফাইল কপি, রিড, রাইট, ডিরেক্টরি তৈরি এবং মুছে ফেলা, ফাইলের আকার নির্ধারণ এবং ডিরেক্টরি স্ক্যানিংয়ের মতো সাধারণ কাজগুলো দ্রুত এবং কার্যকরীভাবে করতে সহায়তা করে। FileUtils ব্যবহার করে Java I/O সম্পর্কিত কাজগুলির জন্য কোড আরও সংক্ষিপ্ত, পরিষ্কার এবং সহজ হয়।

common.content_added_by

FileUtils এর পরিচিতি

163
163

Apache Commons IO লাইব্রেরির FileUtils ক্লাস একটি অত্যন্ত জনপ্রিয় এবং শক্তিশালী ক্লাস যা ফাইল সম্পর্কিত বিভিন্ন অপারেশন (যেমন কপি, মুভ, রিনেম, ডিলিট ইত্যাদি) সহজভাবে এবং দ্রুত করতে সহায়তা করে। এটি Java এর স্ট্যান্ডার্ড I/O API এর বাইরে কিছু অতিরিক্ত ফাংশনালিটি সরবরাহ করে, যা ফাইল এবং ডিরেক্টরি ম্যানিপুলেশনকে সহজ, কার্যকর এবং সাশ্রয়ী করে তোলে।

FileUtils ক্লাসটি ফাইল অপারেশনগুলোতে কমপ্লেক্সিটি কমানোর জন্য বেশ কিছু ইজি-টু-ইউজ (easy-to-use) মেথড প্রদান করে, যা ডেভেলপারদের বারবার একই ধরনের কোড লেখার প্রয়োজনীয়তা কমিয়ে দেয় এবং ফাইল ম্যানিপুলেশন অনেক সহজ করে তোলে। আপনি এটি ব্যবহার করে ফাইল কপি, মুভ, রিনেম, ডিলিট ইত্যাদি অপারেশনগুলো করতে পারেন খুব সহজেই।


১. FileUtils ক্লাসের কার্যকারিতা

FileUtils ক্লাসটি একাধিক ফাইল অপারেশন করতে সহায়তা করে, যেমন:

  • ফাইল কপি (File Copy): একটি ফাইলকে অন্য ফাইলে কপি করা।
  • ফাইল মুভ (File Move): একটি ফাইলের অবস্থান পরিবর্তন করে অন্য স্থানে সরিয়ে নিয়ে যাওয়া।
  • ফাইল রিনেম (File Rename): একটি ফাইলের নাম পরিবর্তন করা।
  • ফাইল ডিলিট (File Delete): একটি ফাইল মুছে ফেলা।
  • ডিরেক্টরি তৈরি (Directory Creation): নতুন ডিরেক্টরি তৈরি করা।
  • ফাইলের কনটেন্ট পড়া/লিখা (File Reading/Writing): ফাইলের কনটেন্ট পড়া এবং নতুন ডেটা লেখা।

২. FileUtils এর প্রধান মেথড

এখানে কিছু প্রধান মেথডের উদাহরণ দেওয়া হলো, যা ফাইল এবং ডিরেক্টরি অপারেশনগুলো সহজ এবং দ্রুত করতে ব্যবহৃত হয়।

২.১. ফাইল কপি (copyFile)

এই মেথডটি একটি ফাইলকে একটি নির্দিষ্ট গন্তব্যে কপি করতে ব্যবহৃত হয়।

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;

public class FileUtilsExample {
    public static void main(String[] args) {
        File sourceFile = new File("source.txt");
        File destinationFile = new File("destination.txt");
        
        try {
            // Copy file using FileUtils
            FileUtils.copyFile(sourceFile, destinationFile);
            System.out.println("File copied successfully!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এখানে:

  • FileUtils.copyFile() মেথডটি source.txt ফাইলটিকে destination.txt ফাইলে কপি করবে।

২.২. ফাইল মুভ (moveFile)

এই মেথডটি একটি ফাইলকে অন্য স্থানে মুভ করতে ব্যবহৃত হয়।

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;

public class FileUtilsExample {
    public static void main(String[] args) {
        File sourceFile = new File("source.txt");
        File destinationFile = new File("newLocation.txt");
        
        try {
            // Move file using FileUtils
            FileUtils.moveFile(sourceFile, destinationFile);
            System.out.println("File moved successfully!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এখানে:

  • FileUtils.moveFile() মেথডটি ফাইলটি source.txt থেকে নতুন অবস্থান newLocation.txt এ সরিয়ে নেবে।

২.৩. ফাইল রিনেম (rename)

এই মেথডটি ফাইলের নাম পরিবর্তন করতে ব্যবহৃত হয়।

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;

public class FileUtilsExample {
    public static void main(String[] args) {
        File oldFile = new File("oldName.txt");
        File newFile = new File("newName.txt");
        
        try {
            // Rename file using FileUtils
            FileUtils.moveFile(oldFile, newFile);
            System.out.println("File renamed successfully!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এখানে:

  • FileUtils.moveFile() মেথডটি oldName.txt ফাইলটির নাম পরিবর্তন করে newName.txt করে দিবে।

২.৪. ফাইল ডিলিট (deleteFile)

এই মেথডটি একটি ফাইল মুছে ফেলতে ব্যবহৃত হয়।

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;

public class FileUtilsExample {
    public static void main(String[] args) {
        File file = new File("fileToDelete.txt");
        
        try {
            // Delete file using FileUtils
            FileUtils.forceDelete(file);
            System.out.println("File deleted successfully!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এখানে:

  • FileUtils.forceDelete() মেথডটি fileToDelete.txt ফাইলটি মুছে ফেলবে।

২.৫. ডিরেক্টরি তৈরি (createDirectory)

এটি একটি নতুন ডিরেক্টরি তৈরি করতে ব্যবহৃত হয়।

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;

public class FileUtilsExample {
    public static void main(String[] args) {
        File directory = new File("newDirectory");
        
        try {
            // Create directory using FileUtils
            FileUtils.forceMkdir(directory);
            System.out.println("Directory created successfully!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এখানে:

  • FileUtils.forceMkdir() মেথডটি newDirectory নামের একটি নতুন ডিরেক্টরি তৈরি করবে।

২.৬. ফাইলের কনটেন্ট পড়া (readFileToString)

এটি একটি ফাইল থেকে কনটেন্ট পড়তে ব্যবহৃত হয়।

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;

public class FileUtilsExample {
    public static void main(String[] args) {
        File file = new File("sample.txt");
        
        try {
            // Read file content to string
            String content = FileUtils.readFileToString(file, "UTF-8");
            System.out.println(content);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এখানে:

  • FileUtils.readFileToString() মেথডটি sample.txt ফাইলের কনটেন্টকে স্ট্রিং আকারে পড়বে।

২.৭. ফাইল লেখা (writeStringToFile)

এই মেথডটি একটি স্ট্রিংকে ফাইলে লিখতে ব্যবহৃত হয়।

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;

public class FileUtilsExample {
    public static void main(String[] args) {
        File file = new File("output.txt");
        
        try {
            // Write string to file
            String content = "Hello, World!";
            FileUtils.writeStringToFile(file, content, "UTF-8");
            System.out.println("Content written to file successfully!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এখানে:

  • FileUtils.writeStringToFile() মেথডটি একটি স্ট্রিং Hello, World! ফাইলে লিখে দিবে।

৩. FileUtils এর সুবিধা

  • সহজ API: FileUtils এর API গুলি খুবই সহজ, যা ফাইল অপারেশনগুলো দ্রুত এবং সহজে করতে সহায়তা করে।
  • টাইপ সেফটি: Java ফাইল অপারেশনগুলোকে নিরাপদভাবে সম্পাদন করতে সাহায্য করে।
  • অটোমেটেড অপারেশন: ফাইল কপি, মুভ, রিনেম, ডিলিট, ফোল্ডার তৈরি ইত্যাদি কাজগুলো সোজা ও অটোমেটিকভাবে করা যায়।
  • নির্ভরযোগ্যতা: FileUtils ক্লাসটি অনেক স্থিতিশীল এবং ব্যাপকভাবে ব্যবহৃত, তাই এটি খুব নির্ভরযোগ্য।
  • উচ্চ কর্মক্ষমতা: বড় বড় ফাইলগুলির জন্যও এটি দ্রুত কাজ করে, কারণ এতে অভ্যন্তরীণ অপটিমাইজেশন থাকে।

সারাংশ

Apache Commons IO - FileUtils ক্লাস Java ডেভেলপারদের জন্য একটি অত্যন্ত শক্তিশালী টুল যা ফাইল ম্যানিপুলেশন অপারেশনগুলো সহজ এবং দ্রুত করার জন্য ব্যবহৃত হয়। এটি ফাইল কপি, মুভ, রিনেম, ডিলিট, ফাইল রিডিং এবং রাইটিং এর মতো অনেক কাজ দ্রুত এবং কার্যকরভাবে করতে সাহায্য করে। এর ব্যবহার সহজ, কার্যকর এবং উন্নত সিস্টেম কর্মক্ষমতা প্রদান করে।

common.content_added_by

ফাইল কপি করা (copyFile, copyDirectory)

129
129

Apache Commons IO লাইব্রেরি FileUtils ক্লাস সরবরাহ করে যা ফাইল ও ডিরেক্টরি সম্পর্কিত কার্যাবলী অনেক সহজ করে তোলে। এর মধ্যে অন্যতম গুরুত্বপূর্ণ কার্যাবলী হলো ফাইল কপি করা এবং ডিরেক্টরি কপি করাcopyFile() এবং copyDirectory() মেথডগুলি এই কার্যাবলী সম্পাদন করতে ব্যবহৃত হয়।

FileUtils.copyFile() এবং FileUtils.copyDirectory() মেথডগুলি ফাইল বা ডিরেক্টরি কপি করার জন্য খুবই কার্যকরী এবং সহজ ব্যবহারযোগ্য। এই মেথডগুলো IOException ছুঁড়ে ফেলে, তাই এগুলি ব্যবহারের সময় exception handling করা উচিত।

১. ফাইল কপি করা (copyFile)

copyFile() মেথডটি ব্যবহার করে আপনি একটি ফাইলকে এক স্থান থেকে অন্য স্থানে কপি করতে পারেন। এটি একটি ফাইলের সমস্ত কন্টেন্ট এবং মেটাডেটা কপি করে।

copyFile() এর ব্যবহার:

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;

public class CopyFileExample {
    public static void main(String[] args) {
        try {
            File sourceFile = new File("source.txt");  // সোর্স ফাইল
            File destinationFile = new File("destination.txt");  // গন্তব্য ফাইল

            // ফাইল কপি করা
            FileUtils.copyFile(sourceFile, destinationFile);

            System.out.println("ফাইল কপি সফল!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এখানে:

  • FileUtils.copyFile() মেথডটি ব্যবহার করা হয়েছে একটি ফাইল থেকে অন্য ফাইলে ডেটা কপি করার জন্য।

আউটপুট:

ফাইল কপি সফল!

২. ডিরেক্টরি কপি করা (copyDirectory)

copyDirectory() মেথডটি ব্যবহার করে আপনি একটি ডিরেক্টরি এবং তার মধ্যে থাকা সমস্ত ফাইল এবং সাবডিরেক্টরিগুলো কপি করতে পারেন। এটি রিকার্সিভলি (recursive) কাজ করে, অর্থাৎ ডিরেক্টরি এবং তার ভিতরের সমস্ত উপাদান কপি করবে।

copyDirectory() এর ব্যবহার:

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;

public class CopyDirectoryExample {
    public static void main(String[] args) {
        try {
            File sourceDir = new File("sourceDir");  // সোর্স ডিরেক্টরি
            File destDir = new File("destinationDir");  // গন্তব্য ডিরেক্টরি

            // ডিরেক্টরি কপি করা
            FileUtils.copyDirectory(sourceDir, destDir);

            System.out.println("ডিরেক্টরি কপি সফল!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এখানে:

  • FileUtils.copyDirectory() মেথডটি ব্যবহার করা হয়েছে একটি ডিরেক্টরি এবং তার ভিতরের সমস্ত ফাইল ও সাবডিরেক্টরি কপি করার জন্য।

আউটপুট:

ডিরেক্টরি কপি সফল!

৩. কপি করার সময় অতিরিক্ত ফিচার

FileUtils.copyFile() এবং FileUtils.copyDirectory() মেথডের কিছু অতিরিক্ত ফিচার রয়েছে, যেমন ফাইল কপি করার সময় overwrite করা, অথবা filtering করা (যেমন, শুধুমাত্র নির্দিষ্ট ফাইল কপি করা)।

উদাহরণ: ফাইল কপি করার সময় overwrite করা

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;

public class CopyFileWithOverwriteExample {
    public static void main(String[] args) {
        try {
            File sourceFile = new File("source.txt");  // সোর্স ফাইল
            File destinationFile = new File("destination.txt");  // গন্তব্য ফাইল

            // ফাইল কপি করা, যদি গন্তব্য ফাইল আগে থেকেই থাকে তবে তার উপরে লেখা হবে
            FileUtils.copyFile(sourceFile, destinationFile);

            System.out.println("ফাইল কপি সফল, আগের ফাইলটি ওভাররাইট করা হয়েছে!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

উদাহরণ: ডিরেক্টরি কপি করার সময় ফাইল ফিল্টারিং

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.filefilter.WildcardFileFilter;

public class CopyDirectoryWithFilterExample {
    public static void main(String[] args) {
        try {
            File sourceDir = new File("sourceDir");  // সোর্স ডিরেক্টরি
            File destDir = new File("destinationDir");  // গন্তব্য ডিরেক্টরি

            // শুধু .txt ফাইল কপি করা
            FileUtils.copyDirectory(sourceDir, destDir, new WildcardFileFilter("*.txt"));

            System.out.println("ফাইল ফিল্টারিং সহ ডিরেক্টরি কপি সফল!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এখানে:

  • WildcardFileFilter ব্যবহার করা হয়েছে যাতে শুধুমাত্র .txt এক্সটেনশন বিশিষ্ট ফাইলগুলো কপি করা হয়।

৪. এছাড়া কিছু গুরুত্বপূর্ণ ফিচার

  1. copyDirectoryToDirectory(): একটি ডিরেক্টরি অন্য একটি ডিরেক্টরির মধ্যে কপি করার জন্য ব্যবহৃত হয়।

    File sourceDir = new File("sourceDir");
    File destinationDir = new File("destinationDir");
    FileUtils.copyDirectoryToDirectory(sourceDir, destinationDir);
    
  2. copyFileToDirectory(): একটি ফাইল একটি ডিরেক্টরির মধ্যে কপি করার জন্য ব্যবহৃত হয়।

    File sourceFile = new File("source.txt");
    File destDir = new File("destinationDir");
    FileUtils.copyFileToDirectory(sourceFile, destDir);
    
  3. forceDelete(): এটি ফাইল বা ডিরেক্টরি ডিলিট করার জন্য ব্যবহৃত হয়, এমনকি যদি ফাইলটি readonly হয়।
  4. copyDirectoryWithFilter(): copyDirectory মেথডটি ফাইল ফিল্টার প্রয়োগ করার জন্য একটি ঐচ্ছিক আর্গুমেন্ট গ্রহণ করতে পারে।

সারাংশ

Apache Commons IO লাইব্রেরি ফাইল এবং ডিরেক্টরি কপি করার জন্য সহজ এবং কার্যকরী মেথড সরবরাহ করে। FileUtils.copyFile() এবং FileUtils.copyDirectory() মেথডগুলির মাধ্যমে আপনি সহজে একটি ফাইল বা ডিরেক্টরি কপি করতে পারেন। এগুলির সঙ্গে আরও অনেক শক্তিশালী ফিচার রয়েছে, যেমন ফাইল ফিল্টারিং, ফাইল ওভাররাইটিং এবং ডিরেক্টরি কপি করা, যা আপনার I/O operations কে আরও কার্যকরী এবং সহজ করে তোলে। Apache Commons IO লাইব্রেরি ব্যবহারের মাধ্যমে আপনি File I/O এবং Directory I/O সম্পর্কিত অনেক সাধারণ কাজ খুব সহজে সম্পন্ন করতে পারেন।

common.content_added_by

ফাইল মুভ করা এবং মুছে ফেলা (moveFile, deleteDirectory)

129
129

Apache Commons IO লাইব্রেরি Java-তে ফাইল এবং ডিরেক্টরি সম্পর্কিত অনেক কার্যক্রম সহজ করতে সাহায্য করে। এর মধ্যে দুটি গুরুত্বপূর্ণ মেথড moveFile এবং deleteDirectory, যা ফাইল মুভ এবং ডিরেক্টরি মুছে ফেলা সম্পর্কিত কাজ সম্পাদন করতে ব্যবহৃত হয়। এগুলি Java এর স্ট্যান্ডার্ড লাইব্রেরি দিয়ে করা তুলনামূলকভাবে অনেক সহজ এবং দ্রুত।

এই লেখায় আমরা moveFile এবং deleteDirectory মেথডের মাধ্যমে ফাইল মুভ এবং ডিরেক্টরি মুছে ফেলার উদাহরণ দেখব।


moveFile: ফাইল মুভ করা

moveFile মেথডটি একটি ফাইল একটি লোকেশন থেকে অন্য লোকেশনে সরাতে ব্যবহৃত হয়। এটি মূলত FileUtils.moveFile() মেথডের মাধ্যমে করা হয়, যা একটি ফাইলকে এক জায়গা থেকে অন্য জায়গায় স্থানান্তর করে। এটি একই সময় ফাইলটি কপি এবং ডিলিট করে।

moveFile উদাহরণ:

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;

public class MoveFileExample {
    public static void main(String[] args) {
        try {
            // Create source and destination files
            File sourceFile = new File("source.txt");
            File destinationFile = new File("destination.txt");

            // Move the file from source to destination
            FileUtils.moveFile(sourceFile, destinationFile);

            System.out.println("File moved successfully!");

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এখানে:

  • FileUtils.moveFile() মেথডটি source.txt ফাইলকে destination.txt ফাইলে মুভ করে।
  • এটি ফাইল কপি এবং তারপরে মূল ফাইলটি মুছে ফেলে, ফলে ফাইলটি নতুন লোকেশনে চলে যায়।

deleteDirectory: ডিরেক্টরি মুছে ফেলা

deleteDirectory মেথডটি একটি ডিরেক্টরি এবং তার সমস্ত কনটেন্ট (ফাইল এবং সাব-ডিরেক্টরি) মুছে ফেলার জন্য ব্যবহৃত হয়। FileUtils.deleteDirectory() মেথডটি ব্যবহার করে আপনি একটি ডিরেক্টরি এবং তার সব ফাইল/ফোল্ডার ডিলিট করতে পারবেন।

deleteDirectory উদাহরণ:

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;

public class DeleteDirectoryExample {
    public static void main(String[] args) {
        try {
            // Specify the directory to be deleted
            File directory = new File("directoryToDelete");

            // Delete the directory and all its contents
            FileUtils.deleteDirectory(directory);

            System.out.println("Directory deleted successfully!");

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এখানে:

  • FileUtils.deleteDirectory() মেথডটি directoryToDelete নামক ডিরেক্টরি এবং তার সমস্ত কনটেন্ট মুছে ফেলে।

moveFile এবং deleteDirectory এর কার্যকারিতা এবং সুবিধা

মেথডবর্ণনাউদাহরণ
moveFileএকটি ফাইল এক জায়গা থেকে অন্য জায়গায় মুভ করে। এটি ফাইল কপি এবং তারপরে মূল ফাইলটি মুছে ফেলে।ফাইলটি একটি লোকেশন থেকে অন্য লোকেশনে সরানো।
deleteDirectoryএকটি ডিরেক্টরি এবং তার সমস্ত কনটেন্ট (ফাইল এবং সাব-ডিরেক্টরি) মুছে ফেলে।ডিরেক্টরি এবং তার সকল ফাইল/ফোল্ডার মুছে ফেলা।

ফাইল মুভ এবং ডিরেক্টরি মুছে ফেলার প্রয়োজনীয়তা

  1. ফাইল মুভ করার প্রয়োজনীয়তা:
    • যখন আপনি একটি ফাইলের স্থান পরিবর্তন করতে চান, তবে আপনি moveFile মেথড ব্যবহার করতে পারেন। এটি সাধারণত ফাইল সরানোর কাজে আসে, যেমন ফাইল অর্গানাইজেশন বা আর্কাইভিং প্রক্রিয়ায়।
  2. ডিরেক্টরি মুছে ফেলার প্রয়োজনীয়তা:
    • ডিরেক্টরি মুছে ফেলার প্রয়োজন হয় যখন আপনি একটি সম্পূর্ণ ফোল্ডার এবং তার কনটেন্ট পরিষ্কার করতে চান। উদাহরণস্বরূপ, একটি আপডেট বা ডিলিট প্রক্রিয়াতে কোনো পুরনো ডিরেক্টরি মুছে ফেলা।

Additional Considerations

  1. moveFile Exception Handling:
    • moveFile মেথডটি ফাইল মুভ করার সময় কিছু IOException এর জন্য সন্নিবেশিত থাকে। উদাহরণস্বরূপ, যদি গন্তব্য ফাইলটি আগে থেকেই বিদ্যমান থাকে বা কোনো অনুমতি সমস্যা থাকে তবে এটি একটি IOException ছুঁড়ে দিতে পারে। এই ধরনের ত্রুটি সঠিকভাবে হ্যান্ডেল করতে হবে।
  2. deleteDirectory Exception Handling:
    • deleteDirectory মেথডটি কোনো ফোল্ডার মুছে ফেলার সময় IOException ছুঁড়ে দিতে পারে, বিশেষ করে যদি কোনো ফাইল বা সাব-ডিরেক্টরি ফোল্ডারে লক থাকে বা আপনি মুছে ফেলতে অনুমতি না পান। এধরনের পরিস্থিতিতে IOException হ্যান্ডলিং প্রয়োজন।

সারাংশ

Apache Commons IO লাইব্রেরির moveFile এবং deleteDirectory মেথডগুলি ফাইল এবং ডিরেক্টরি ম্যানিপুলেশনের জন্য অত্যন্ত কার্যকরী এবং সহজ উপায় প্রদান করে। moveFile মেথডটি ফাইলের স্থান পরিবর্তন করতে সাহায্য করে, যেখানে deleteDirectory মেথডটি ডিরেক্টরি এবং তার সকল কনটেন্ট মুছে ফেলার জন্য ব্যবহৃত হয়। এই দুটি মেথডের মাধ্যমে আপনি Java IO কার্যক্রমগুলোকে আরও দ্রুত, নিরাপদ এবং সহজভাবে পরিচালনা করতে পারবেন।

common.content_added_by

ফাইল এবং ডিরেক্টরি তৈরি করা

136
136

Apache Commons IO লাইব্রেরি ফাইল এবং ডিরেক্টরি সম্পর্কিত কাজগুলোকে সহজ ও কার্যকরী করে তোলে। FileUtils ক্লাসটি বিশেষভাবে ফাইল এবং ডিরেক্টরি তৈরি, মুছে ফেলা, কপি করা, রেনেম করা ইত্যাদি কাজের জন্য অত্যন্ত উপকারী। এই পোস্টে আমরা দেখব কীভাবে Apache Commons IO ব্যবহার করে ফাইল এবং ডিরেক্টরি তৈরি করা যায়।

1. ফাইল তৈরি করা

Apache Commons IO লাইব্রেরি ব্যবহার করে খুব সহজেই নতুন ফাইল তৈরি করা যায়। FileUtils ক্লাসের touch() মেথড ব্যবহার করে একটি ফাইল তৈরি করা সম্ভব, যদি তা আগে থেকে উপস্থিত না থাকে।

FileUtils.touch() মেথড ব্যবহার করে ফাইল তৈরি করা

import org.apache.commons.io.FileUtils;

import java.io.File;
import java.io.IOException;

public class FileCreationExample {
    public static void main(String[] args) {
        // File object তৈরি
        File file = new File("example.txt");

        try {
            // ফাইল তৈরি করুন যদি এটি আগে না থাকে
            FileUtils.touch(file);

            System.out.println("ফাইল তৈরি করা হয়েছে: " + file.getAbsolutePath());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

ব্যাখ্যা:

  • FileUtils.touch(file) মেথডটি ফাইল তৈরি করে যদি তা পূর্বে না থাকে।
  • যদি ফাইলটি আগে থেকেই থাকে, তবে এটি কোনো পরিবর্তন করে না।
  • এটি IOException ছুড়ে ফেলতে পারে, তাই আমরা try-catch ব্লক ব্যবহার করেছি।

Output:

ফাইল তৈরি করা হয়েছে: C:\path\to\your\example.txt

2. ডিরেক্টরি তৈরি করা

Apache Commons IO ব্যবহার করে নতুন ডিরেক্টরি তৈরি করা খুব সহজ। FileUtils ক্লাসের mkdirs() মেথড ব্যবহার করে আপনি একটি নতুন ডিরেক্টরি (এবং প্রয়োজন হলে প্যারেন্ট ডিরেক্টরি) তৈরি করতে পারেন।

FileUtils.mkdirs() মেথড ব্যবহার করে ডিরেক্টরি তৈরি করা

import org.apache.commons.io.FileUtils;

import java.io.File;
import java.io.IOException;

public class DirectoryCreationExample {
    public static void main(String[] args) {
        // নতুন ডিরেক্টরি অবজেক্ট তৈরি
        File directory = new File("exampleDir/subDir");

        try {
            // ডিরেক্টরি তৈরি করুন (যদি না থাকে)
            FileUtils.mkdirs(directory);

            System.out.println("ডিরেক্টরি তৈরি করা হয়েছে: " + directory.getAbsolutePath());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

ব্যাখ্যা:

  • FileUtils.mkdirs(directory) মেথডটি একটি নতুন ডিরেক্টরি এবং তার প্যারেন্ট ডিরেক্টরি তৈরি করবে যদি তা আগে না থাকে।
  • যদি ডিরেক্টরি ইতোমধ্যে বিদ্যমান থাকে, তবে এটি কোনো পরিবর্তন করবে না।

Output:

ডিরেক্টরি তৈরি করা হয়েছে: C:\path\to\your\exampleDir\subDir

3. ডিরেক্টরি এবং ফাইল তৈরি করার সাথে সাথে সেগুলির অস্তিত্ব পরীক্ষা করা

কখনও কখনও, আপনি চাইবেন যে ফাইল বা ডিরেক্টরি তৈরি করার পর তা সঠিকভাবে তৈরি হয়েছে কিনা তা পরীক্ষা করুন। exists() মেথড ব্যবহার করে আপনি ডিরেক্টরি বা ফাইলের অস্তিত্ব পরীক্ষা করতে পারেন।

ফাইল এবং ডিরেক্টরি অস্তিত্ব পরীক্ষা করা

import java.io.File;

public class FileDirectoryCheck {
    public static void main(String[] args) {
        // ফাইল এবং ডিরেক্টরি অবজেক্ট তৈরি
        File file = new File("example.txt");
        File directory = new File("exampleDir");

        // ফাইল এবং ডিরেক্টরি পরীক্ষা
        if (file.exists()) {
            System.out.println("ফাইল বিদ্যমান: " + file.getAbsolutePath());
        } else {
            System.out.println("ফাইলটি তৈরি হয়নি: " + file.getAbsolutePath());
        }

        if (directory.exists()) {
            System.out.println("ডিরেক্টরি বিদ্যমান: " + directory.getAbsolutePath());
        } else {
            System.out.println("ডিরেক্টরি তৈরি হয়নি: " + directory.getAbsolutePath());
        }
    }
}

Output:

ফাইল বিদ্যমান: C:\path\to\your\example.txt
ডিরেক্টরি বিদ্যমান: C:\path\to\your\exampleDir

4. ডিরেক্টরি এবং ফাইল তৈরি করার সময় বিভিন্ন ধরনের বিকল্প

Apache Commons IO আরও কিছু গুরুত্বপূর্ণ বৈশিষ্ট্য সরবরাহ করে যা ফাইল এবং ডিরেক্টরি তৈরি করার সময় বিভিন্ন বিকল্প প্রয়োগ করতে সাহায্য করে। উদাহরণস্বরূপ:

  • force ফ্ল্যাগ: ফোর্সডভাবে ফাইল বা ডিরেক্টরি তৈরি করা।
  • write পদ্ধতি: ফাইল লেখার সময় কিছু অতিরিক্ত প্রক্রিয়া প্রয়োগ করা।

যদি আপনি FileUtils এর অন্যান্য মেথড ব্যবহার করতে চান, যেমন write বা copy মেথড, তবে আপনাকে ফাইল এবং ডিরেক্টরি তৈরির ক্ষেত্রে আরও কার্যকরী উপায় প্রয়োগ করতে হবে।


Apache Commons IO লাইব্রেরি ফাইল এবং ডিরেক্টরি তৈরি করতে খুবই কার্যকরী এবং সহজ উপায় সরবরাহ করে। FileUtils ক্লাসের touch() এবং mkdirs() মেথড ব্যবহার করে আপনি সহজে নতুন ফাইল এবং ডিরেক্টরি তৈরি করতে পারেন। এই লাইব্রেরিটি ফাইল সিস্টেমের সাথে কাজ করার সময় জটিলতা কমাতে সাহায্য করে এবং আপনাকে দ্রুত ও কার্যকরী কোড লিখতে সহায়তা করে।

common.content_added_by

ফাইল আকার এবং মডিফাই করার তারিখ চেক করা

144
144

Apache Commons IO লাইব্রেরি ফাইল এবং ডিরেক্টরি ম্যানিপুলেশনের জন্য বিভিন্ন সহজ ইউটিলিটি ক্লাস প্রদান করে। এর মধ্যে FileUtils এবং FilenameUtils ক্লাস ব্যবহার করে ফাইলের আকার এবং মডিফাই করার তারিখ চেক করা খুবই সহজ। এখানে আমরা বিস্তারিতভাবে দেখব কিভাবে ফাইল আকার এবং ফাইলের মডিফাই করার তারিখ বের করা যায়।


1. ফাইল আকার চেক করা (Getting File Size)


ফাইলের আকার (size) বের করার জন্য আপনি FileUtils ক্লাসের sizeOf() মেথড ব্যবহার করতে পারেন। এটি একটি ফাইলের আকার বাইট (bytes) আকারে প্রদান করে।

FileUtils ব্যবহার করে ফাইল আকার বের করা:

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;

public class FileSizeExample {
    public static void main(String[] args) {
        // Create a File object pointing to a specific file
        File file = new File("example.txt");

        // Get file size using FileUtils
        long fileSize = FileUtils.sizeOf(file);

        // Print the file size
        System.out.println("File size in bytes: " + fileSize);
    }
}

এখানে:

  • FileUtils.sizeOf(file) ফাইলের আকার বাইটে প্রদান করে।
  • ফাইল আকার বের করার জন্য sizeOf() মেথড ব্যবহার করা হয়েছে।

ফাইল আকার কিলোবাইট বা মেগাবাইটে পরিবর্তন করা:

// Convert the file size to kilobytes (KB) and megabytes (MB)
double sizeInKB = fileSize / 1024.0;
double sizeInMB = sizeInKB / 1024.0;

System.out.println("File size in KB: " + sizeInKB);
System.out.println("File size in MB: " + sizeInMB);

এখানে:

  • fileSize কে কিলোবাইট (KB) এবং মেগাবাইট (MB) এ রূপান্তরিত করা হয়েছে।

2. ফাইল মডিফাই করার তারিখ চেক করা (Getting File Modification Date)


ফাইলের মডিফাই করার তারিখ বের করার জন্য FileUtils ক্লাসের lastModified() মেথড ব্যবহার করা যেতে পারে। এই মেথডটি ফাইলের সর্বশেষ মডিফাই করার তারিখ এবং সময় প্রদান করে।

FileUtils ব্যবহার করে ফাইলের মডিফাই করার তারিখ চেক করা:

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
import java.util.Date;

public class FileLastModifiedExample {
    public static void main(String[] args) {
        // Create a File object pointing to a specific file
        File file = new File("example.txt");

        // Get the last modified date of the file using FileUtils
        long lastModified = FileUtils.lastModified(file);

        // Convert the last modified time to a Date object
        Date lastModifiedDate = new Date(lastModified);

        // Print the last modified date
        System.out.println("File last modified on: " + lastModifiedDate);
    }
}

এখানে:

  • FileUtils.lastModified(file) ফাইলের মডিফাই করার সময় (ইউনিক্স টাইমস্ট্যাম্প) প্রদান করে।
  • আমরা এটি Date অবজেক্টে রূপান্তর করেছি যাতে এটি পাঠযোগ্য আকারে প্রদর্শন করা যায়।

3. ফাইল আকার এবং মডিফাই করার তারিখ একসাথে চেক করা


আপনি একসাথে ফাইল আকার এবং মডিফাই করার তারিখ চেক করতে পারেন। নিচে একটি উদাহরণ দেওয়া হল যেখানে আমরা দুটি কাজ একসাথে করেছি।

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
import java.util.Date;

public class FileDetailsExample {
    public static void main(String[] args) {
        // Create a File object pointing to a specific file
        File file = new File("example.txt");

        try {
            // Get file size
            long fileSize = FileUtils.sizeOf(file);

            // Get the last modified date
            long lastModified = FileUtils.lastModified(file);
            Date lastModifiedDate = new Date(lastModified);

            // Convert size to KB and MB
            double sizeInKB = fileSize / 1024.0;
            double sizeInMB = sizeInKB / 1024.0;

            // Print file size and last modified date
            System.out.println("File size in bytes: " + fileSize);
            System.out.println("File size in KB: " + sizeInKB);
            System.out.println("File size in MB: " + sizeInMB);
            System.out.println("File last modified on: " + lastModifiedDate);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

এখানে:

  • FileUtils.sizeOf(file) ফাইলের আকার বের করেছে।
  • FileUtils.lastModified(file) ফাইলের মডিফাই করার তারিখ বের করেছে।
  • আউটপুটে ফাইল আকার (বাইট, কিলোবাইট এবং মেগাবাইটে) এবং মডিফাই করার তারিখ দেখানো হয়েছে।

সারাংশ


Apache Commons IO লাইব্রেরি ব্যবহার করে ফাইলের আকার এবং মডিফাই করার তারিখ চেক করা খুবই সহজ। FileUtils.sizeOf() মেথড দিয়ে ফাইলের আকার বের করা যায় এবং FileUtils.lastModified() মেথড দিয়ে ফাইলের সর্বশেষ মডিফাই করার তারিখ পাওয়া যায়। এই দুটি মেথড Java I/O এর উপর ভিত্তি করে ফাইল সম্পর্কিত গুরুত্বপূর্ণ তথ্য খুব সহজে এক্সেস করতে সাহায্য করে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion